package com.ruoyi.system.service.waterService;

import com.ruoyi.system.domain.waterEnity.*;

import java.util.List;

public interface ProductService {
    List<UserInfoBO>  getAllUser();
    /**商品管理
     * 1.添加商品
     */
    int insertProduct(ProductInfoBO productInfoBO);
    int insertNorm(ProductInfoBO productInfoBO);



    /**
     * 2.检查商品名称是否存在
     */
    String checkProduct_name(ProductInfoBO productInfoBO);
    /**
     * 3.添加分类
     */
    int insertSort(ProductInfoBO productInfoBO);
    /**
     * 4.查询全部商品信息
     */
    List<ProductInfoBO> selectAllProduct();
    List<ProductInfoBO> selectAllNorm(int id);

    ProductInfoBO selectChildProductById(int id);
    /**
     * 5.上架，下架
     *
     */
    int updateProductState(ProductInfoBO productInfoBO);
    /**
     * 6.修改商品信息
     */
    int updateProduct(ProductInfoBO productInfoBO);

    int updateNorm(ProductInfoBO productInfoBO);
    /**
     * 7.根据多种条件查询商品
     *7.1.根据商品id查询
     */
    List<ProductInfoBO> selectProductById(String id);
    /**
     * 7.2.根据商品名称查询
     */
    List<ProductInfoBO> selectProductByProduct_name(String product_name);
    /**
     * 7.3.根据商品状态查询
     */
    List<ProductInfoBO> selectProductByState(String state);


    /**配送信息管理
     * 1.送货员身份设置
     */
    int updateUserByIdentify(String identify,int id);
    /**
     * 2.查看全部配送信息
     */
    List<DistributionEntity> selectDistributionList();
    /**
     * 3.修改配送信息
     */
    int updateDistribution(DistributionEntity distributionEnity);

    /**
     * 查询全部分类
     */
    List<SortEntity>  selectSortList();
//    /**
//     * 删除商品
//     */
//    int deleteProduct(int id);
//    /**
//     * 根据父商品id删除子商品
//     */
//    int deleteChildProductByProductId(int id);

    int deleteProductAndNorm(String ids);

    int updateProductStock(ProductInfoBO productInfoBO);

    int deleteChildProduct(String ids);

    List<ProductInfoBO> selectAllProductByCondition(String product_id, String product_name, String state,String sort);

    SortEntity selectSortBySort_id(int sort_id);
    /**
     * 修改主商品下全部商品状态
     */
    int updateProductState1(ProductInfoBO productInfoBO);
    /**
     * 检查主商品状态
     */
    ProductInfoBO checkProductState(ProductInfoBO productInfoBO);
    /**
     * 检查子商品的状态
     */
    List<ProductInfoBO> checkChildProductState(ProductInfoBO productInfoBO);
    //插入图片
    int productImage(ImageEntity imageEntity);
}

